/*
 * Trait.h
 *
 *  Created on: Dec 28, 2008
 *      Author: sez
 */

#ifndef TRAIT_H_
#define TRAIT_H_

#include "TitledData.h"

#include <Xml/XmlPath.h>

#include <QString>

class CharacterRecord;

class Trait : public TitledData
{
public:
    Trait(const XmlPath &);
    Trait(const QString &title = QString());
    Trait(const Trait &);
    virtual ~Trait();
    void loadFromXml();
    void saveToXml() const;
    QString description() const { return summary; }
    Trait &operator=(const Trait &);
    void apply(CharacterRecord *) const;

    XmlPath::BaseTypes base;
    QString baseTypeName;

    QString details;
    QString summary;
    QStringList instructions;
};

#endif /* TRAIT_H_ */
